In modern computer graphics, texture processing can include many different types of texture mapping techniques including cubic mapping, mipmapping, and anisotropic mapping among others. The complexity and volume of arithmetic and logical operations utilized to perform texture processing necessitate the use of dedicated circuits in addition to those utilized in other graphics processing operations. Accordingly, these dedicated texture processing circuits can include a significant percentage of the hardware gates that make up a graphics processing unit.
In addition to texture processing, graphics processors also include logic to perform several types of shader program execution operations. For example, shader programs can be performed by vertex shaders, geometry shaders, and pixel shader processors (further shaders). In general, the shaders may utilize texture mapping services from the texture processing hardware at various stages of shader processing. For example, some shader programs (operations) can benefit from the efficiency improvement gained by preloading, also referred to as prefetching, texture data before shader program execution.
Preload texturing can be especially beneficial in pixel shading operations where the texture processing requirements can be reliably predicted before shading operations. It may be considered a static texture processing. Alternatively, other shader operations require the texture data to be fetched and processed during the shader program execution for a particular graphic stream element has commenced. It may be considered as dynamic texture processing. Texture processing that is requested by the shader program is referred to as dependent read texturing and may be utilized more frequently in vertex and geometry shader operations. Since providing exclusive texture processing hardware to address each of the preload and dependent read texturing requirements creates an unwanted level of redundancy and can be costly in terms of processor hardware, methods and systems for sharing texture processing hardware are desired. Thus, a heretofore-unaddressed need exists in the industry for improved and optimized texture processing operations.